package com.sdry.mapper.plan;

import java.util.List;

import com.sdry.model.plan.ProductPlanDetail;
import org.apache.ibatis.annotations.Param;

/**
 * @version 1.0
 * @ClassName: ProductPlanDetailService
 * @Description: 生产计划详情
 * @Author llm
 * @Date 2019-07-02 18:22:48
 */
public interface ProductPlanDetailMapper {
	/**
	 * 根据主键id查询实体
	 *
	 * @param id 主键id
	 * @return 实体
	 */
	public ProductPlanDetail queryById(Long id);

	/**
	 * 条件查询所有
	 *
	 * @param param 实体条件
	 * @return 实体集合
	 */
	public List<ProductPlanDetail> queryAllByMution(ProductPlanDetail param);

	/**
	 * 条件分页查询
	 *
	 * @param param 实体条件
	 * @return 实体集合
	 */
	public List<ProductPlanDetail> findPageByMution(ProductPlanDetail param);

	/**
	 * 条件查询记录数
	 *
	 * @param param 实体条件
	 * @return 实体集合
	 */
	public Integer selectCountByMution(ProductPlanDetail param);

	/**
	 * 插入返回id
	 *
	 * @param param 实体条件
	 * @return 主键id
	 */
	public Long insert(ProductPlanDetail param);

	/**
	 * 根据主键更新 返回影响行数
	 *
	 * @param param 实体条件
	 * @return 影响行数
	 */
	public Integer update(ProductPlanDetail param);

	/**
	 * 根据主键拼接的字符串删除返回影响行数
	 *
	 * @param ids 主键拼接的字符串
	 * @return 影响行数
	 */
	public Integer delete(String ids);

	/**
	 * 根据计划单ID分页查询详情
	 *
	 * @param param
	 * @return
	 */
	public List<ProductPlanDetail> findPageByPlanId(ProductPlanDetail param);

	/**
	 * 根据计划单ID查详情数量
	 *
	 * @param param
	 * @return
	 */
	public Integer selectCountByPlanId(ProductPlanDetail param);

	/**
	 * 根据id修改数量
	 *
	 * @param id              id
	 * @param pId             父id
	 * @param productQuantity 数量
	 * @return
	 */
    Integer updateProductQuantityById(@Param("id") Long id, @Param("pId") Long pId, @Param("productQuantity") Integer productQuantity);

	/**
	 * 把计划单的状态改成为生成
	 * @param pId
	 */
	void updateStatus1ById(Long pId);
}
